package br.com.vti.sisp_sicrim.antigo.dao;

import java.sql.ResultSet;
import java.sql.SQLException;

import br.com.vti.sisp_sicrim.antigo.dao.util.HibernateUtil;

public class SicHistoricoDAO {

	private int codigoRetorno = 0; // *ERROR
	private String msgRetorno = ""; // *ERROR
	public long qtdRegistros = 0; // *counter
	public long nroRegistro = 0; // *counter
	private String[] listacol = { "", "PolegarDireito", "IndicadorDireito", "MedioDireito", "AnularDireito", "MinimoDireito", "PolegarEsquerdo", "IndicadorEsquerdo", "MedioEsquerdo", "AnularEsquerdo", "MinimoEsquerdo", "StatusReg", "TipoReg", "NomePrograma", "RegEstadualGeral", "RegFederal", "IgUf", "NomeCompleto", "NomePai", "NomeMae", "NomeAnterior", "DataReg", "ApelidoAlcunhas", "Compleicao", "UfRegEstadual", "MunicipioReg", "CodigoMunicipioReg", "DocumentoApresent", "NumeroDocumentoApresent", "OrgaoExpUf", "NacionEstrangeiro", "TipoProprietarioArma", "DataUltimaMovimentUf", "PossuiInquerito", "PossuiArma", "PossuiProcesso", "Falecido", "PossuiMandatoAberto", "OrgaoExp", "UfExp", "NomeDelegacia", "Sexo", "DataNasc", "CodigoCutis", "CodigoCorCabelos", "CodigoTipoCabelo", "CodigoCorOlhos", "CodigoSobrancelhas", "CodBarba", "CodigoBigode", "Altura", "MarcaPartCicatTatuag", "Profissao", "EstadoCivil", "Nacionalidade", "Naturalidade", "UfMunicipioNasc", "UfNaturalidade", "GrauInstrucao", "AvRua", "Numero", "Bairro", "Municipio", "Estado", "Cep", "Complemento", "MotivoPrisaoLei", "NumeroAutos", "AnoAutos", "DataAtuacao", "HoraPrisao", "NomeVitima", "Local", "InqueritoPolicial", "QuerFolhaAnteced", "MatriculaFuncAtu", "DataDocAtu", "HoraAtu" };
	private ResultSet query = null;
	private ResultSet queryObservacao = null;

	public ResultSet pesquisaProximo() {
		// query
		try {
			if (query == null)
				return null;
			if (query.getRow() == 0) {
				query = null;
				return null;
			}
			query.next();
			if (query.getRow() == 0) {
				query = null;
				return null;
			}
			if (query != null) {
				nroRegistro++;
			}
			return query;
		} catch (SQLException e) {
			codigoRetorno = 999;
			msgRetorno = e.getMessage();
			return null;
		}
	}

	public boolean temProximo() {
		try {
			if (query == null)
				return false;
			if (query.getRow() == 0) {
				return false;
			}
		} catch (SQLException e) {
			codigoRetorno = 999;
			msgRetorno = e.getMessage();
			return false;
		}
		return (nroRegistro < qtdRegistros);
	}

	public void fecha() {
		if (query == null)
			return;
		try {
			query.close();
			query = null;
		} catch (SQLException e) {
			codigoRetorno = 999;
			msgRetorno = e.getMessage();
			query = null;
		}
	}

	public ResultSet pesquisaObservacao(String id) {

		String sql = "select * from sp_pesquisa_Observacao_Sic_Historico ( pId := '" + id + "' )";
		try {
			queryObservacao = HibernateUtil.executarQuery(sql);
			queryObservacao.first();
		} catch (SQLException e) {
			codigoRetorno = 999;
			msgRetorno = e.getMessage();
		}

		return queryObservacao;
	}

	public ResultSet proximoObservacao() {

		if (queryObservacao == null) {
			return null;
		}
		try {
			queryObservacao.next();
		} catch (SQLException e) {
			codigoRetorno = 999;
			msgRetorno = e.getMessage();
			return null;
		}

		return queryObservacao;
	}

	public int getColuna(String coluna) {
		for (int i = 0; i < listacol.length; i++) {
			if (listacol[i].equals(coluna))
				return i;
		}
		return -1;
	}

}
